package io;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * 文件复制
 */
public class CopyDemo {
    public static void main(String[] args) throws IOException {
        //单字节读写:-----------不要求掌握
        /*
        FileInputStream fis = new FileInputStream("Kobe.jpg");
        FileOutputStream fos = new FileOutputStream("Kobe_cp.jpg");

        long start = System.currentTimeMillis(); //获取自1970.1.1零时到此时此刻所经历的毫秒数
        int d;
        while((d=fis.read())!=-1){
            fos.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕，耗时:"+(end-start)+"ms");

        fis.close();
        fos.close();
         */

        //块级读写:
        FileInputStream fis = new FileInputStream("Kobe.jpg");
        FileOutputStream fos = new FileOutputStream("Kobe_cp2.jpg");
        long start = System.currentTimeMillis();
        byte[] data = new byte[1024*10]; //10kb
        int len;
        /*
          len=fis.read(data):
          从fis中一次性读取10kb的数据到data数组中，
          并返回所读取到的字节数存到len中，若为-1表示读取到末尾
         */
        while((len=fis.read(data))!=-1){
            //fos.write(data); //写入整个data
            fos.write(data,0,len); //从data的0开始写入len个字节，读多少写多少，没有脏数据了
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕，耗时"+(end-start)+"ms");
        fis.close();
        fos.close();

    }
}
















